package io.esir.permission;

import androidx.annotation.NonNull;

/**
 * Request
 * Created by Huangrc on 2017/10/23.
 */

public interface Request {

    @NonNull
    Request permission(String... permissions);

    @NonNull
    Request permission(String[]... permissionsArray);

    @NonNull
    Request rationale(RationaleListener listener);

    @NonNull
    Request requestCode(int requestCode);

    /**
     * Request callback.
     *
     * @param callback {@link PermissionListener}.
     * @return {@link Request}.
     */
    @NonNull
    Request callback(Object callback);

    void resume();

    /**
     * Request permission.
     */
    void start();
}
